package praktikum4GastKomponente.Entitaeten;

import praktikum4GastKomponente.Datentyp.DGastEMail;
import praktikum4GastKomponente.Datentyp.DGastIstStammkunde;
import praktikum4GastKomponente.Datentyp.DGastName;
import praktikum4GastKomponente.Datentyp.DGastNr;

/**
 * Erzeugt einen neuen Gast
 * @param dGastNr Die Nummer des Gastes
 * @param dGastName Der Name des Gastes
 * @param dGastEMAIL Die EMail des Gastes
 * @param dGastIstStammkunde Stammkundenfeld des Gastes
 * @return	Der neue EGast
 */
public class EGast {

	private DGastNr nr;
	private DGastName name;
	private DGastEMail email;
	private DGastIstStammkunde istStammkunde;
	
	public EGast(DGastNr nr, DGastName name, DGastEMail email, DGastIstStammkunde istStammkunde) {
		this.nr = nr;
		this.name = name;
		this.email = email;
		this.istStammkunde = istStammkunde;
	}

	public DGastNr getNr() {
		return nr;
	}

	public void setNr(DGastNr nr) {
		this.nr = nr;
	}

	public DGastName getName() {
		return name;
	}

	public void setName(DGastName name) {
		this.name = name;
	}

	public DGastEMail getEMail() {
		return email;
	}

	public void setEmail(DGastEMail email) {
		this.email = email;
	}

	public DGastIstStammkunde getIstStammkunde() {
		return istStammkunde;
	}

	public void setIstStammkunde(DGastIstStammkunde istStammkunde) {
		this.istStammkunde = istStammkunde;
	}
	
	

	@Override
	public String toString() {
		return "EGast [nr=" + nr + ", name=" + name + ", email=" + email
				+ ", istStammkunde=" + istStammkunde + "]";
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((email == null) ? 0 : email.hashCode());
		result = prime * result
				+ ((istStammkunde == null) ? 0 : istStammkunde.hashCode());
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		result = prime * result + ((nr == null) ? 0 : nr.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj == null) {
			return false;
		}
		if (getClass() != obj.getClass()) {
			return false;
		}
		EGast other = (EGast) obj;
		if (!nr.equals(other.nr)) {
			return false;
		}
		return true;
	}
	
	
}
